#include <bits/stdc++.h>
using namespace std;
#define int long long
void solve()
{
    int n,m;
    cin>>n>>m;
    string a,b;
    cin>>a>>b;
    unordered_map<char, int>mp;
    for(int i=0;i<m;i++)
    {
        mp[b[i]]++;
    }
    char mn='a';
    for(int i=0;i<a.size();i++)
    {
        if(a[i]>mn)
        {
            for(char j=mn;j<a[i];j++)
            {
                for(int k=1;k<=mp[j];k++)
                {
                    a.insert(a.begin()+i++,j);
                }
            }
            mn=a[i];
        }
    }
    if(mn<='z')
    {
        for(char j=mn;j<='z';j++)
        {
            for(int k=1;k<=mp[j];k++)
            {
                a.insert(a.end(),j);
            }
        }
    }
    cout<<a<<endl;
}
signed main()
{
    //ios::sync_with_stdio(false);
    //cin.tie(nullptr);
    int T=1;
    //cin>>T;
    while(T--)
    {
       solve();
    }
    return 0;
}